package org.jeecg.modules.nikeProject.mapper;

import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.nikeProject.entity.SportsProject;
import org.jeecg.modules.nikeProject.entity.vo.*;
import org.jeecg.modules.oss.entity.OssFile;
import org.springframework.web.bind.annotation.PostMapping;

/**
 * @Description: 案例评审-项目管理
 * @Author: jeecg-boot
 * @Date:   2024-12-05
 * @Version: V1.0
 */
public interface SportsProjectMapper extends BaseMapper<SportsProject> {

    List<SportProjectListVO> getFirstAuditList(@Param("params") Map<String, Object> params);

    List<ProjectAssignmentListVO> getSeniorAuditList(@Param("params") Map<String, Object> params);

    int getTotal(@Param("params") Map<String, Object> params);

    List<OssFile> getSnapShotUrl(@Param("projectId") String projectId, @Param("fileType") String fileType);

    List<CaseItemVO> getAssignmentCaseItem(@Param("roleType") String roleType,
                                           @Param("year") Integer year,
                                           @Param("schoolStage") Integer schoolStage);

    List<CaseItemVO> getSeniorAssignmentCaseItem(@Param("roleType") String roleType, @Param("year") Integer year);

    List<CaseItemVO> getDisputeAssignmentCaseItem(@Param("roleType") String roleType,
                                                  @Param("year") Integer year,
                                                  @Param("schoolStage") Integer schoolStage);

    List<CaseItemVO> getFinalAssignmentCaseItem(@Param("roleType") String roleType, @Param("year") Integer year, @Param("ids") List<String> ids);

    List<SportProjectListVO> getUnSubmitDocList(@Param("params") Map<String, Object> params);

    int getUnSubmitDocTotal(@Param("params") Map<String, Object> params);

    List<ProjectApplyInfoVO> getProjectApplyInfo(@Param("ids") List<String> ids);

    List<ProjectAssignmentListVO> getAssignmentCaseItemByPage(@Param("params") Map<String, Object> params);

    int getAssignTotal(@Param("params") Map<String, Object> params);

    int getSeniorAssignTotal(@Param("projectName") String projectName,
                             @Param("assignStatus") String assignStatus);

    List<ProjectAssignmentListVO> getSeniorUnAssginListByPage(@Param("params") Map<String, Object> params);

    List<ProjectAssignmentListVO> getSeniorAssignListByPage(@Param("params") Map<String, Object> params);

    List<AssignJudgeUserList> getAssignJudgeList(@Param("ids") List<String> ids,
                                                 @Param("judgeType") String judgeType);

    List<AreaObj> getAllProvince();
    List<AreaObj> getAllCounty();
    List<AreaObj> getAllCity();

    int updateProjectStatus(@Param("username") String username,
                            @Param("ids") List<String> ids,
                            @Param("actionType") String actionType);

    List<ProjectAssignmentListVO> getDisputeFirstList(@Param("params") Map<String, Object> params);

    List<JudgeVO> getJudgeUserId(@Param("judgeType") String judgeType,
                                 @Param("roleType") String roleType,
                                 @Param("groupName") String groupName,
                                 @Param("year") Integer year);

    List<AuditScoreVO> getAuditScoreList(@Param("params") Map<String, Object> params);

    List<AuditScoreVO> getWinList(@Param("params") Map<String, Object> params);

    int checkDispute(@Param("ids") List<String> ids,
                     @Param("actionType") String actionType,
                     @Param("roleType") String roleType);

    Integer getFillCnt(@Param("startTime") String startTime, @Param("endTime") String endTime);

    Integer getSubmitCnt(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("roleType") String roleType);

    List<UnSubmittedUserVO> getUnSubmittedData(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("year") Integer year);
}

